TEOREMA DE PTOLOMEO Y SENO DEL ANGULO SUMA

a1[r_,tipo_]:=If[tipo=="ciclico",r*Cos[Pi],(r-.2)*Cos[Pi]];
a2[r_,tipo_]:=If[tipo=="ciclico",r*Sin[Pi],(r-.2)*Sin[Pi]];
vert[r_,Alpha_]:={r*Cos[Alpha],r*Sin[Alpha]};
ang[i1_,i2_,c1_,c2_,f1_,f2_]:= ArcCos[((f1-c1)(i1-c1)+(f2-c2)(i2-c2))/
(Norm[{i1-c1,i2-c2}]Norm[{f1-c1,f2-c2}])];
angIni[i1_,i2_,c1_,c2_]:= If[ (i2-c2)>=0,
ArcCos[(i1-c1)/(Norm[{i1-c1,i2-c2}])],
2*Pi-ArcCos[(i1-c1)/(Norm[{i1-c1,i2-c2}])]]; 
p1[a1_,a2_,b1_,b2_,c1_,c2_,d1_,d2_]:=
(c2-Tan@( angIni[d1,d2,c1,c2]+ang[d1,d2,c1,c2,a1,a2] )c1-
d2+Tan@( angIni[a1,a2,d1,d2]+ang[b1,b2,d1,d2,c1,c2] )d1)/
(Tan@( angIni[a1,a2,d1,d2]+ang[b1,b2,d1,d2,c1,c2] )-Tan@( angIni[d1,d2,c1,c2]+ang[d1,d2,c1,c2,a1,a2] ));
p2[a1_,a2_,b1_,b2_,c1_,c2_,d1_,d2_]:=
Tan@( angIni[a1,a2,d1,d2]+ang[b1,b2,d1,d2,c1,c2] )*(p1[a1,a2,b1,b2,c1,c2,d1,d2]-d1)+d2; 
lado[a1_,a2_,b1_,b2_]:=Line[{{a1,a2},{b1,b2}}];

mediatriz[a1_,a2_,b1_,b2_]:=Line[{
{a1/2+b1/2+1.3*
1/2*Norm[{b1+a1,b2+a2}]/Norm[{b1-a1,b2-a2}]*(a2-b2)
,a2/2+b2/2+1.3*
1/2*Norm[{b1+a1,b2+a2}]/Norm[{b1-a1,b2-a2}]*(b1-a1)},
{a1/2+b1/2-0.3*1/Norm[{b1-a1,b2-a2}]*(a2-b2),
a2/2+b2/2-0.3*1/Norm[{b1-a1,b2-a2}]*(b1-a1)}
}]; 

segmentoP[a1_,a2_,b1_,b2_,c1_,c2_,d1_,d2_]:=Line[{ {d1,d2},
{p1[a1,a2,b1,b2,c1,c2,d1,d2],p2[a1,a2,b1,b2,c1,c2,d1,d2]}  }];
angLin[i1_,i2_,c1_,c2_,f1_,f2_,r_]:=Circle[{c1,c2},r,
{angIni[i1,i2,c1,c2],
angIni[i1,i2,c1,c2]+ang[i1,i2,c1,c2,f1,f2]}];
angSup[i1_,i2_,c1_,c2_,f1_,f2_,r_]:=Disk[{c1,c2},r,
{angIni[i1,i2,c1,c2],
angIni[i1,i2,c1,c2]+ang[i1,i2,c1,c2,f1,f2]}];
cuadrilatero[r_,b_,c_,d_,tipo_,thick_]:={
{Thickness[0],Circle[{0,0},r+.4]},
 White,
{Thickness[.001],Circle[{0,0},r]},
{Thickness[thick],
lado[a1[r,tipo],a2[r,tipo],r*Cos[b],r*Sin[b]],
lado[r*Cos[b],r*Sin[b],r*Cos[c],r*Sin[c]],
lado[r*Cos[c],r*Sin[c],r*Cos[d],r*Sin[d]],
lado[r*Cos[d],r*Sin[d],a1[r,tipo],a2[r,tipo]]},
Text[Style["A",Bold,White,14],vert[2.2,Pi]],
Text[Style["B",Bold,White,14],vert[2.2,b]],
Text[Style["C",Bold,White,14],vert[2.2,c]],
Text[Style["D",Bold,White,14],vert[2.2,d]]
};

sistema1[r_,b_,c_,d_,tipo_,prop_]:={
If[prop=="propiedades",{
Flatten@cuadrilatero[r,b,c,d,tipo,.005],
{Yellow,
mediatriz[a1[r,tipo],a2[r,tipo],r*Cos[b],r*Sin[b]],
mediatriz[r*Cos[b],r*Sin[b],r*Cos[c],r*Sin[c]],
mediatriz[r*Cos[c],r*Sin[c],r*Cos[d],r*Sin[d]],
mediatriz[r*Cos[d],r*Sin[d],a1[r,tipo],a2[r,tipo]]},
White,
angLin[r*Cos[d],r*Sin[d],r*Cos[c],r*Sin[c],r*Cos[b],r*Sin[b],.35],
angLin[a1[r,tipo],a2[r,tipo],r*Cos[d],r*Sin[d],r*Cos[c],r*Sin[c],.35],
angLin[r*Cos[c],r*Sin[c],r*Cos[b],r*Sin[b],a1[r,tipo],a2[r,tipo],.35],
angLin[r*Cos[b],r*Sin[b],a1[r,tipo],a2[r,tipo],r*Cos[d],r*Sin[d],.35]

},{If[prop=="demostracion",{
Flatten@cuadrilatero[r,b,c,d,tipo,.002],
{White,Thickness[.002],
lado[r*Cos[b],r*Sin[b],r*Cos[d],r*Sin[d]],
lado[r*Cos[c],r*Sin[c],a1[r,tipo],a2[r,tipo]]},
{White,Thickness[.002],
segmentoP[a1[r,tipo],a2[r,tipo],r*Cos[b],r*Sin[b],r*Cos[c],r*Sin[c],
r*Cos[d],r*Sin[d]]},
Text[Style["P",Bold,RGBColor[.8,.8,.5,1],14], 
{p1[a1[r,tipo],a2[r,tipo],r*Cos[b],r*Sin[b],r*Cos[c],r*Sin[c],
r*Cos[d],r*Sin[d]],
p2[a1[r,tipo],a2[r,tipo]-.15,r*Cos[b],r*Sin[b],r*Cos[c],r*Sin[c]-.15,
(r)*Cos[d],(r)*Sin[d]]}],
{Text[Style["α" ,Bold,14,White],
 {a1[r,tipo]+.82(r*Cos[c]-a1[r,tipo])+.15*
Cos[VectorAngle[{r*Cos[c]-a1[r,tipo],r*Sin[c]-a2[r,tipo]},{1,0}]+Pi/2],
a2[r,tipo]+.82(r*Sin[c]-a2[r,tipo])+.15*
Sin[VectorAngle[{r*Cos[c]-a1[r,tipo],r*Sin[c]-a2[r,tipo]},{1,0}]+Pi/2]}],
If[tipo=="ciclico",
Text[Style["α" ,Bold,14,White],
 {r*Cos[b]+.18(r*Cos[d]-r*Cos[b])+
.15*Cos[VectorAngle[{r*Cos[d]-r*Cos[b],r*Sin[d]-r*Sin[b]},{1,0}]+Pi/2],
r*Sin[b]+.18(r*Sin[d]-r*Sin[b])+
.15*Sin[VectorAngle[{r*Cos[d]-r*Cos[b],r*Sin[d]-r*Sin[b]},{1,0}]+Pi/2]}],
Text[Style["",FontColor->RGBColor[0,0,0,0]],{0,0}]]},
{White,Thickness[.003],
angLin[r*Cos[d],r*Sin[d],r*Cos[c],r*Sin[c],a1[r,tipo],a2[r,tipo],.3],
If[tipo=="ciclico",White,RGBColor[1,.1,.1,.2]],
angLin[r*Cos[d],r*Sin[d],r*Cos[b],r*Sin[b],a1[r,tipo],a2[r,tipo],.3]},
{RGBColor[.3,.8,.6,.9],Thickness[.005],
lado[r*Cos[b],r*Sin[b],a1[r,tipo],a2[r,tipo]],
lado[r*Cos[c],r*Sin[c],
p1[a1[r,tipo],a2[r,tipo],r*Cos[b],r*Sin[b],r*Cos[c],r*Sin[c],
r*Cos[d],r*Sin[d]],
p2[a1[r,tipo],a2[r,tipo],r*Cos[b],r*Sin[b],r*Cos[c],r*Sin[c],
(r)*Cos[d],(r)*Sin[d]]]},
{RGBColor[.7,.9,.1,.8],Thickness[.005],
lado[r*Cos[b],r*Sin[b],r*Cos[d],r*Sin[d]],
lado[r*Cos[c],r*Sin[c],r*Cos[d],r*Sin[d]]},
{White,Thickness[.003],
angLin[a1[r,tipo],a2[r,tipo],r*Cos[d],r*Sin[d],r*Cos[b],r*Sin[b],.5],
angLin[
p1[a1[r,tipo],a2[r,tipo],r*Cos[b],r*Sin[b],
r*Cos[c],r*Sin[c],r*Cos[d],r*Sin[d]],
p2[a1[r,tipo],a2[r,tipo],r*Cos[b],r*Sin[b],
r*Cos[c],r*Sin[c],r*Cos[d],r*Sin[d]],
r*Cos[d],r*Sin[d],r*Cos[c],r*Sin[c],.4]},
{RGBColor[.8,.9,.4,.3],
Polygon[{{r*Cos[d],r*Sin[d]},{r*Cos[c],r*Sin[c]},
{p1[a1[r,tipo],a2[r,tipo],r*Cos[b],r*Sin[b],
r*Cos[c],r*Sin[c],r*Cos[d],r*Sin[d]],
p2[a1[r,tipo],a2[r,tipo],r*Cos[b],r*Sin[b],
r*Cos[c],r*Sin[c],r*Cos[d],r*Sin[d]]}}]},
RGBColor[.6,.8,.6,.3],
Polygon[{{r*Cos[d],r*Sin[d]},{a1[r,tipo],a2[r,tipo]},{r*Cos[b],r*Sin[b]}}],
{}
},{
Flatten@cuadrilatero[r,b,c,d,tipo,.004],
{RGBColor[.8,.2,.8,1],Thickness[.004],
lado[a1[r,tipo],a2[r,tipo],r*Cos[c],r*Sin[c]]},
{White,Thickness[.002],
lado[a1[r,tipo],a2[r,tipo],0,0],
lado[0,0,(r*Cos[c]+a1[r,tipo])/2,(r*Sin[c]+a2[r,tipo])/2]},

If[r*Sin[c]>0,
{Text[Style["M",Bold,White,14],
{(a1[r,tipo]+r*Cos[c])/2,(a2[r,tipo]+r*Sin[c])/2+.3}],
Text[Style["O",Bold,White,14],{0,-.3}]
},{
Text[Style["M",Bold,White,14],
{(a1[r,tipo]+r*Cos[c])/2,(a2[r,tipo]+r*Sin[c])/2-.3}],
Text[Style["O",Bold,White,14],{0,+.3}]}],
Text[Style["α+γ" ,Bold,14,FontColor->RGBColor[.8,.2,.8]],
 {r*Cos[b]-.15+.18(r*Cos[d]-r*Cos[b]),
r*Sin[b]+.18(r*Sin[d]-r*Sin[b])}],

If[tipo=="ciclico",
If[Sin[c]>0,
Text[Style["α+γ" ,Bold,14,FontColor->RGBColor[.8,.2,.8]], { -.4,.2}],
Text[Style["π-(α+γ)" ,Bold,14,FontColor->RGBColor[.8,.2,.8]], { -.8,-.2}]
],
Text[Style["",FontColor->RGBColor[0,0,0,0]],{0,0}]],
{Thickness[.003],
If[tipo=="ciclico",RGBColor[.8,.2,.8,.8],RGBColor[.8,.2,.8,.2]],
If[r*Sin[c]>0,
angLin[(r*Cos[c]+a1[r,tipo] )/2,(r*Sin[c]+ a2[r,tipo])/2,0,0,
a1[r,tipo],a2[r,tipo],.2],
angLin[a1[r,tipo],a2[r,tipo],0,0,
(r*Cos[c]+a1[r,tipo] )/2,(r*Sin[c]+ a2[r,tipo])/2,.2]  ],
RGBColor[.8,.2,.8,.8],
angLin[r*Cos[c],r*Sin[c],r*Cos[b],r*Sin[b],a1[r,tipo],a2[r,tipo],.3]
}  
}]}]};

sistema2[r_,b_,c_,d_,tipo_,prop_]:={
If[prop=="propiedades",{
Flatten@cuadrilatero[r,b,c,d,tipo,.004],
{White,Thickness[.002],
lado[r*Cos[b],r*Sin[b],r*Cos[d],r*Sin[d]],
lado[r*Cos[c],r*Sin[c],a1[r,tipo],a2[r,tipo]]},
If[tipo=="ciclico",RGBColor[.5,.7,.9,.7],RGBColor[.5,.7,.9,.2]],
angSup[r*Cos[b],r*Sin[b],a1[r,tipo],a2[r,tipo],r*Cos[c],r*Sin[c],.3],
RGBColor[.5,.7,.9,.7],
angSup[r*Cos[b],r*Sin[b],r*Cos[d],r*Sin[d],r*Cos[c],r*Sin[c],.3],
If[tipo=="ciclico",RGBColor[1,1,0,.7],RGBColor[1,1,0,.2]],
angSup[r*Cos[c],r*Sin[c],a1[r,tipo],a2[r,tipo],r*Cos[d],r*Sin[d],.3],
RGBColor[1,1,0,.7],
angSup[r*Cos[c],r*Sin[c],r*Cos[b],r*Sin[b],r*Cos[d],r*Sin[d],.3],
If[tipo=="ciclico",RGBColor[1,.4,.4,.7],RGBColor[1,.5,.5,.2]],
angSup[r*Cos[d],r*Sin[d],r*Cos[b],r*Sin[b],a1[r,tipo],a2[r,tipo],.3],
RGBColor[1,.4,.4,.7],
angSup[r*Cos[d],r*Sin[d],r*Cos[c],r*Sin[c],a1[r,tipo],a2[r,tipo],.3],
If[tipo=="ciclico",RGBColor[.4,.9,.4,.6],RGBColor[.2,.9,.2,.2]],
angSup[a1[r,tipo],a2[r,tipo],r*Cos[d],r*Sin[d],r*Cos[b],r*Sin[b],.3],
RGBColor[.4,.9,.4,.6],
angSup[a1[r,tipo],a2[r,tipo],r*Cos[c],r*Sin[c],r*Cos[b],r*Sin[b],.3],

Text[Style["α" ,Bold,14,FontColor->RGBColor[1,.4,.4]],
 {a1[r,tipo]+.82(r*Cos[c]-a1[r,tipo])+
.15*Cos[VectorAngle[{r*Cos[c]-a1[r,tipo],r*Sin[c]-a2[r,tipo]},{1,0}]+Pi/2],
a2[r,tipo]+.82(r*Sin[c]-a2[r,tipo])+
.15*Sin[VectorAngle[{r*Cos[c]-a1[r,tipo],r*Sin[c]-a2[r,tipo]},{1,0}]+Pi/2]}],
Text[Style["β" ,Bold,14,FontColor->RGBColor[.4,.9,.4]],
 {a1[r,tipo]+.82(r*Cos[c]-a1[r,tipo])+
.15*Cos[VectorAngle[{r*Cos[c]-a1[r,tipo],r*Sin[c]-a2[r,tipo]},{1,0}]-Pi/2],
a2[r,tipo]+.82(r*Sin[c]-a2[r,tipo])+
.15*Sin[VectorAngle[{r*Cos[c]-a1[r,tipo],r*Sin[c]-a2[r,tipo]},{1,0}]-Pi/2]
}],
Text[Style["γ" ,Bold,14,FontColor->RGBColor[1,1,0]],
 {r*Cos[b]+.18(r*Cos[d]-r*Cos[b])+
.15*Cos[VectorAngle[{r*Cos[d]-r*Cos[b],r*Sin[d]-r*Sin[b]},{1,0}]-Pi/2],
r*Sin[b]+.18(r*Sin[d]-r*Sin[b])+
.15*Sin[VectorAngle[{r*Cos[d]-r*Cos[b],r*Sin[d]-r*Sin[b]},{1,0}]-Pi/2]}],
Text[Style["μ" ,Bold,14,FontColor->RGBColor[.5,.7,.9]],
{r*Cos[b]+.82(r*Cos[d]-r*Cos[b])+
.15*Cos[VectorAngle[{r*Cos[d]-r*Cos[b],r*Sin[d]-r*Sin[b]},{1,0}]-Pi/2],
r*Sin[b]+.82(r*Sin[d]-r*Sin[b])+
.15*Sin[VectorAngle[{r*Cos[d]-r*Cos[b],r*Sin[d]-r*Sin[b]},{1,0}]-Pi/2]}],
If[tipo=="ciclico",{
Text[Style["α" ,Bold,14,FontColor->RGBColor[1,.4,.4]],
 {r*Cos[b]+.18(r*Cos[d]-r*Cos[b])+
.15*Cos[VectorAngle[{r*Cos[d]-r*Cos[b],r*Sin[d]-r*Sin[b]},{1,0}]+Pi/2],
r*Sin[b]+.18(r*Sin[d]-r*Sin[b])+
.15*Sin[VectorAngle[{r*Cos[d]-r*Cos[b],r*Sin[d]-r*Sin[b]},{1,0}]+Pi/2]}],
Text[Style["β" ,Bold,14,FontColor->RGBColor[.4,.9,.4]],
{r*Cos[b]+.82(r*Cos[d]-r*Cos[b])+
.15*Cos[VectorAngle[{r*Cos[d]-r*Cos[b],r*Sin[d]-r*Sin[b]},{1,0}]+Pi/2],
r*Sin[b]+.82(r*Sin[d]-r*Sin[b])+
.15*Sin[VectorAngle[{r*Cos[d]-r*Cos[b],r*Sin[d]-r*Sin[b]},{1,0}]+Pi/2]}],
Text[Style["γ" ,Bold,14,FontColor->RGBColor[1,1,0]],
 {a1[r,tipo]+.18(r*Cos[c]-a1[r,tipo])+
.15*Cos[VectorAngle[{r*Cos[c]-a1[r,tipo],r*Sin[c]-a2[r,tipo]},{1,0}]+Pi/2],
a2[r,tipo]+.18(r*Sin[c]-a2[r,tipo])+
.15*Sin[VectorAngle[{r*Cos[c]-a1[r,tipo],r*Sin[c]-a2[r,tipo]},{1,0}]+Pi/2]}],
Text[Style["μ" ,Bold,14,FontColor->RGBColor[.5,.7,.9]],
{a1[r,tipo]+.18(r*Cos[c]-a1[r,tipo])+
.15*Cos[VectorAngle[{r*Cos[c]-a1[r,tipo],r*Sin[c]-a2[r,tipo]},{1,0}]-Pi/2],
a2[r,tipo]+.18(r*Sin[c]-a2[r,tipo])+
.15*Sin[VectorAngle[{r*Cos[c]-a1[r,tipo],r*Sin[c]-a2[r,tipo]},{1,0}]-Pi/2]}]},
Text[Style["",FontColor->RGBColor[0,0,0,0]],{0,0}]]

},{If[prop=="demostracion",{
Flatten@cuadrilatero[r,b,c,d,tipo,.002],
{White,Thickness[.002],
lado[r*Cos[b],r*Sin[b],r*Cos[d],r*Sin[d]],
lado[r*Cos[c],r*Sin[c],a1[r,tipo],a2[r,tipo]]},
{White,Thickness[.002],
segmentoP[a1[r,tipo],a2[r,tipo],r*Cos[b],r*Sin[b],r*Cos[c],r*Sin[c],
r*Cos[d],r*Sin[d]]},
Text[Style["P",Bold,RGBColor[.8,.8,.5,1],14], 
{p1[a1[r,tipo],a2[r,tipo],r*Cos[b],r*Sin[b],r*Cos[c],r*Sin[c],
r*Cos[d],r*Sin[d]],
p2[a1[r,tipo],a2[r,tipo]-.15,r*Cos[b],r*Sin[b],r*Cos[c],r*Sin[c]-.15,
(r)*Cos[d],(r)*Sin[d]]}],
Text[Style["γ" ,Bold,14,White],
 {r*Cos[b]+.18(r*Cos[d]-r*Cos[b])+
.15*Cos[VectorAngle[{r*Cos[d]-r*Cos[b],r*Sin[d]-r*Sin[b]},{1,0}]-Pi/2],
r*Sin[b]+.18(r*Sin[d]-r*Sin[b])+
.15*Sin[VectorAngle[{r*Cos[d]-r*Cos[b],r*Sin[d]-r*Sin[b]},{1,0}]-Pi/2]}],
If[tipo=="ciclico",
Text[Style["γ" ,Bold,14,White],
 {a1[r,tipo]+.18(r*Cos[c]-a1[r,tipo])+
.15*Cos[VectorAngle[{r*Cos[c]-a1[r,tipo],r*Sin[c]-a2[r,tipo]},{1,0}]+Pi/2],
a2[r,tipo]+.18(r*Sin[c]-a2[r,tipo])+
.15*Sin[VectorAngle[{r*Cos[c]-a1[r,tipo],r*Sin[c]-a2[r,tipo]},{1,0}]+Pi/2]}],
Text[Style["",FontColor->RGBColor[0,0,0,0]],{0,0}]],
{White,Thickness[.003],
angLin[r*Cos[c],r*Sin[c],r*Cos[b],r*Sin[b],r*Cos[d],r*Sin[d],.3],
If[tipo=="ciclico",White,RGBColor[1,1,1,.2]],
angLin[r*Cos[c],r*Sin[c],a1[r,tipo],a2[r,tipo],r*Cos[d],r*Sin[d],.3]},
{RGBColor[.3,.8,.6,.9],Thickness[.005],
lado[r*Cos[b],r*Sin[b],r*Cos[c],r*Sin[c]],
lado[a1[r,tipo],a2[r,tipo],
p1[a1[r,tipo],a2[r,tipo],r*Cos[b],r*Sin[b],r*Cos[c],r*Sin[c],
r*Cos[d],r*Sin[d]],
p2[a1[r,tipo],a2[r,tipo],r*Cos[b],r*Sin[b],r*Cos[c],r*Sin[c],
r*Cos[d],r*Sin[d]]]},
{RGBColor[.7,.9,.1,.8],Thickness[.005],
lado[r*Cos[b],r*Sin[b],r*Cos[d],r*Sin[d]],
lado[a1[r,tipo],a2[r,tipo],r*Cos[d],r*Sin[d]]},
{White,Thickness[.003],
angLin[a1[r,tipo],a2[r,tipo],r*Cos[d],r*Sin[d],
p1[a1[r,tipo],a2[r,tipo],r*Cos[b],r*Sin[b],
r*Cos[c],r*Sin[c],r*Cos[d],r*Sin[d]],
p2[a1[r,tipo],a2[r,tipo],r*Cos[b],r*Sin[b],
r*Cos[c],r*Sin[c],r*Cos[d],r*Sin[d]],.4],
angLin[
r*Cos[b],r*Sin[b],r*Cos[d],r*Sin[d],r*Cos[c],r*Sin[c],.5]},
RGBColor[.8,.9,.4,.3],
Polygon[{{r*Cos[d],r*Sin[d]},{a1[r,tipo],a2[r,tipo]},
{p1[a1[r,tipo],a2[r,tipo],r*Cos[b],r*Sin[b],
r*Cos[c],r*Sin[c],r*Cos[d],r*Sin[d]],
p2[a1[r,tipo],a2[r,tipo],r*Cos[b],r*Sin[b],
r*Cos[c],r*Sin[c],r*Cos[d],r*Sin[d]]}}],
RGBColor[.6,.8,.6,.3],
Polygon[{{r*Cos[d],r*Sin[d]},{r*Cos[c],r*Sin[c]},{r*Cos[b],r*Sin[b]}}],
{}
},{
Flatten@cuadrilatero[r,b,c,d,tipo,.004],
{Thickness[.004],
RGBColor[.1,.8,.1,1],
lado[a1[r,tipo],a2[r,tipo],r*Cos[d+Pi],r*Sin[d+Pi]],
lado[r*Cos[d],r*Sin[d],a1[r,tipo],a2[r,tipo]],
RGBColor[.8,.8,.1,1],
lado[r*Cos[d+Pi],r*Sin[d+Pi],r*Cos[c],r*Sin[c]],
lado[r*Cos[d],r*Sin[d],r*Cos[c],r*Sin[c]]},

Text[Style["B'", Orange,Bold,14],{(r+.2)*Cos[d+Pi],(r+.2)*Sin[Pi+d]}],

{Thickness[.002],
White,
lado[r*Cos[d+Pi],r*Sin[d+Pi],r*Cos[d],r*Sin[d]],
lado[r*Cos[b],r*Sin[b],r*Cos[d],r*Sin[d]]  },
{RGBColor[.8,.8,.1,.8],Thickness[.0035],
angLin[r*Cos[c],r*Sin[c],r*Cos[b],r*Sin[b],r*Cos[d],r*Sin[d],.25]},
{RGBColor[.1,.8,.1,.8],
angLin[r*Cos[d],r*Sin[d],r*Cos[b],r*Sin[b],a1[r,tipo],a2[r,tipo],.25]},


If[Sin[d]>0 ,
{{If[tipo=="ciclico",RGBColor[1,1,1,.4],RGBColor[1,1,1,.1]],
Thickness[.0035],
angSup[r*Cos[d+Pi],r*Sin[d+Pi],a1[r,tipo],a2[r,tipo],
r*Cos[d],r*Sin[d],.25]},
{If[tipo=="ciclico",RGBColor[.1,.8,.1,.8],RGBColor[.1,.8,.1,.2]],
Thickness[.003],
angLin[r*Cos[d],r*Sin[d],r*Cos[d+Pi],r*Sin[d+Pi],a1[r,tipo],a2[r,tipo],.25]}
},{
{If[tipo=="ciclico",RGBColor[1,1,1,.4],RGBColor[1,1,1,.1]],
Thickness[.003],
angSup[r*Cos[d],r*Sin[d],a1[r,tipo],a2[r,tipo],
r*Cos[d+Pi],r*Sin[d+Pi],.25]},
{If[tipo=="ciclico",RGBColor[.1,.8,.1,.8],RGBColor[.1,.8,.1,.2]],
Thickness[.003],
angLin[a1[r,tipo],a2[r,tipo],r*Cos[d+Pi],r*Sin[d+Pi],
r*Cos[d],r*Sin[d],.25]}
}],


If[Sin[d]>0 ,{
If[tipo=="ciclico",
Text[Style["α" ,Bold,14,FontColor->RGBColor[.1,.8,.1]],
 {r*Cos[d+Pi]+.18(r*Cos[d]-r*Cos[d+Pi])+
.15*Cos[VectorAngle[{r*Cos[d]-r*Cos[d+Pi],r*Sin[d]-r*Sin[d+Pi]},{1,0}]+Pi/2],
r*Sin[d+Pi]+.18(r*Sin[d]-r*Sin[d+Pi])+
.15*Sin[VectorAngle[{r*Cos[d]-r*Cos[d+Pi],r*Sin[d]-r*Sin[d+Pi]},{1,0}]+Pi/2]}],
Text[Style["",FontColor->RGBColor[0,0,0,0]],{0,0}]]
 },{
If[tipo=="ciclico",
Text[Style["π-α" ,Bold,14,FontColor->RGBColor[.1,.8,.1]],
 {r*Cos[d+Pi]+.05(r*Cos[d]-r*Cos[d+Pi])-
.5*Cos[VectorAngle[{r*Cos[d]-r*Cos[d+Pi],r*Sin[d]-r*Sin[d+Pi]},{1,0}]+Pi/2],
r*Sin[d+Pi]+.05(r*Sin[d]-r*Sin[d+Pi])-
.5*Sin[VectorAngle[{r*Cos[d]-r*Cos[d+Pi],r*Sin[d]-r*Sin[d+Pi]},{1,0}]+Pi/2]}],
Text[Style["",FontColor->RGBColor[0,0,0,0]],{0,0}]]
}], 

If[(Sin[c]>0) || 
(Sin[c]<0 && Cos[c]>0 && Cos[Pi+d]<Cos[c] && Sin[d]>Sin[c])|| 
(Sin[c]<0 && Cos[c]<0 && Cos[ Pi+d ]< Cos[c]    )||
(Sin[c]<0 && Cos[c]<0 && Cos[ Pi+d ]> Cos[c] && Sin[Pi+d]>0 ),
{{RGBColor[1,1,1,.4],
angSup[r*Cos[d],r*Sin[d],r*Cos[c],r*Sin[c],r*Cos[d+Pi],r*Sin[d+Pi],.25]},
{RGBColor[.8,.8,.1,.8],Thickness[.003],
angLin[r*Cos[c],r*Sin[c],r*Cos[d+Pi],r*Sin[d+Pi],r*Cos[d],r*Sin[d],.35]} ,
{Text[Style["γ" ,Bold,14,FontColor->RGBColor[1,1,0]],
 {r*Cos[d+Pi]+.18(r*Cos[d]-r*Cos[d+Pi])+
.18*Cos[VectorAngle[{r*Cos[d]-r*Cos[d+Pi],r*Sin[d]-r*Sin[d+Pi]},
{1,0}]-Pi/2],
r*Sin[d+Pi]+.18(r*Sin[d]-r*Sin[d+Pi])+
.18*Sin[VectorAngle[{r*Cos[d]-r*Cos[d+Pi],r*Sin[d]-r*Sin[d+Pi]},{1,0}]-Pi/2]}]}
},{
{RGBColor[1,1,1,.4],
angSup[r*Cos[d+Pi],r*Sin[d+Pi],r*Cos[c],r*Sin[c],r*Cos[d],r*Sin[d],.25]},
{RGBColor[.8,.8,.1,.8],Thickness[.0035],
angLin[r*Cos[d],r*Sin[d],r*Cos[d+Pi],r*Sin[d+Pi],r*Cos[c],r*Sin[c],.35]},
{Text[Style["π-γ" ,Bold,14,FontColor->RGBColor[1,1,0]],
 {r*Cos[d+Pi]+.15(r*Cos[d]-r*Cos[d+Pi])-
.32*Cos[VectorAngle[{r*Cos[d]-r*Cos[d+Pi],r*Sin[d]-r*Sin[d+Pi]},{1,0}]-Pi/2],
r*Sin[d+Pi]+.15(r*Sin[d]-r*Sin[d+Pi])-
.32*Sin[VectorAngle[{r*Cos[d]-r*Cos[d+Pi],r*Sin[d]-r*Sin[d+Pi]},{1,0}]-Pi/2]}]}
}],

Text[Style["α" ,Bold,14,FontColor->RGBColor[.1,.8,.1]],
 {r*Cos[b]+.18(r*Cos[d]-r*Cos[b])+
.15*Cos[VectorAngle[{r*Cos[d]-r*Cos[b],r*Sin[d]-r*Sin[b]},{1,0}]+Pi/2],
r*Sin[b]+.18(r*Sin[d]-r*Sin[b])+
.15*Sin[VectorAngle[{r*Cos[d]-r*Cos[b],r*Sin[d]-r*Sin[b]},{1,0}]+Pi/2]}],
Text[Style["γ" ,Bold,14,FontColor->RGBColor[1,1,0]],
 {r*Cos[b]+.18(r*Cos[d]-r*Cos[b])+
.15*Cos[VectorAngle[{r*Cos[d]-r*Cos[b],r*Sin[d]-r*Sin[b]},{1,0}]-Pi/2],
r*Sin[b]+.18(r*Sin[d]-r*Sin[b])+
.15*Sin[VectorAngle[{r*Cos[d]-r*Cos[b],r*Sin[d]-r*Sin[b]},{1,0}]-Pi/2]}]


}]}]};

Manipulate[ Grid[{
{Graphics[
sistema1[2,b,c,d,cu,v],ImageSize->{360,360},Background->GrayLevel[.09]]},
{Graphics[
sistema2[2,b,c,d,cu,v],ImageSize->{360,360},Background->GrayLevel[.09]]}
}, Spacings->{0,2}],
Style[" Teorema de Ptolomeo",Bold,FontSize->16],
Style[" ",Bold,FontSize->14],
Style["AC · BD  =  AD · BC + AB · CD ",Bold,Orange,FontSize->12],
Style[" ",Bold,FontSize->14],
Style[" Seno del ángulo suma",Bold,FontSize->16],
Style[" ",Bold,FontSize->14],
Style["sen (α+γ) = sen α · cos γ + cos α · sen γ ",Bold,Orange,FontSize->12],
Style[" ",Bold,FontSize->14],
Delimiter,
Style[" ",Bold,FontSize->14],
Style[" Tipo de cuadrilátero",Bold,FontSize->12],
Style[" ",Bold,FontSize->14],
{cu ,{"ciclico", "interior"}},
Style[" ",Bold,FontSize->14],
Delimiter,
Style[" Vértices",Bold,FontSize->12],
Style[" ",Bold,FontSize->14],
{{b,Pi+2.4,"b"},Pi+.3,c-.3,.01},
{{c,Pi+3.7,"c"},b+.3,d-.3,.01},
{{d,Pi+4.5,"d"},c+.3,3Pi-.3,.01},
Style[" ",Bold,FontSize->14],
Delimiter,
Style[" Elementos que se visualizan",Bold,FontSize->12],
Style[" ",Bold,FontSize->14],
{{v,"propiedades"} ,{"propiedades","demostracion","trigonometria"}},
Delimiter,
Style[" ",Bold,FontSize->14],
Dynamic[If[v=="propiedades",
If[cu=="ciclico",
Grid[{
{Style["  ""A + C = π ,  B + D = π " ,Bold,Orange,FontSize->14]},
{Style["   ""0 < α < π " ,Bold,Red,FontSize->14]},
{Style["   ""0 < β < π  " ,Bold,FontColor->RGBColor[0,.7,0],FontSize->14]},
{Style["   ""0 < γ < π  " ,Bold,FontColor->RGBColor[.7,.7,0],FontSize->14]},
{Style["   ""0 < μ < π  " ,Bold,FontColor->RGBColor[.1,.8,.9],FontSize->14]}
}, Spacings->{0,2}],
Grid[{
{Style["   ""A + B + C + D = 2 π " ,Bold,Orange,FontSize->14]}
}, Spacings->{0,2}] ],
If[v=="demostracion",If[cu=="ciclico",
Grid[{{Style[" "" AC = AP + PC",Bold,Orange,FontSize->12]},
{Style[" ABD y PCD son semejantes:" ,Bold,FontSize->12]},
{Style[" ""PC · BD = CD · AB",Bold,Orange,FontSize->12]},
 {Style[" APD y CDB son semejantes:",Bold,FontSize->12]},
{Style[" ""AP · BD = AD · BC",Bold,Orange,FontSize->12]}}, Spacings->{0,2}],
Style["",FontColor->RGBColor[0,0,0,0]]],
If[cu=="ciclico",
Grid[{
{Style["  sen(α+γ) = AC · (1/(DB'))" ,Bold,FontSize->14,
FontColor->RGBColor[.8,0,.8]]},
{Style[" sen α = sen(π-α) = AD · \!\(\*FractionBox[\(\(1\)\(\\ \)\), \(DB'\)]\)",Bold,FontSize->14,
FontColor->RGBColor[0,.8,0]]},
{Style[" cos γ = - cos(π-γ) = CB' · (1/(DB'))",Bold,FontSize->14,
FontColor->RGBColor[.7,.7,0]]},
{Style[" cos α = - cos(π-α) = AB' · (1/(DB'))",Bold,FontSize->14,
FontColor->RGBColor[0,.8,0]]},
{Style[" sen γ = sen(π-γ) = CD · (1/(DB'))",Bold,FontSize->14,
FontColor->RGBColor[.7,.7,0]]}}, Spacings->{0,2}],
Style["",FontColor->RGBColor[0,0,0,0]]]
]]],
ControlPlacement->Left,SaveDefinitions->True]

a)  Si un cuadrilátero tiene sus vértices sobre una circunferencia (cíclico)  el producto  de sus dos diagonales es igual a la suma de los productos de sus lados opuestos (Ptolomeo, 100 -170). 
b)  Sus dos pares de ángulos opuestos suman π radianes. 
c)  Los cuatro ángulos en los que cada diagonal divide a dos ángulos opuestos, pueden tener toda la variabilidad entre 0  y π radianes.
d)  El punto P sobre una diagonal, obtenido con la igualdad de los ángulos  ADP y BDC, define dos pares de triángulos semejantes, en cuya proporcionalidad se encuentra la demostración del teorema.
e)  Para todo cuadrilátero cíclico existe otro también cíclico que tiene dos ángulos rectos y conserva los otros dos. Analizando el teorema de Ptolomeo en él se obtiene la fórmula trigonométrica del seno del ángulo suma de dos.

luis.valero@mac.com